﻿<?

   // получаем URL откуда запущен сайт
   function GetSiteUrl(){
	$url=$_SERVER[HTTP_REFERER];
	$pieces = explode("?", $url);
        if (stripos($pieces[0], "job")!=0) {$pieces[0]=$pieces[0]."..";};
	return $pieces[0];
   };
   
   // получаем имя ТМЦ по ID из equipment
   function GetTMCName($id){
    global $cfg;        
	$result = mysql_query("SELECT name FROM nome
   INNER JOIN (SELECT equipment.nomeid as eqnomeid FROM equipment WHERE id='$id') AS eq ON eq.eqnomeid=nome.id",$cfg->base_id);
	if ($result!='') {
         while ($myrow = mysql_fetch_array($result)){
		//echo "!$myrow[name]!";
		return $myrow[name];
	 };
	} else {die('Неверный запрос выборка имени номенклатуры по ID: ' . mysql_error());}
   };
   function smtpmail($to, $subject, $content, $attach=false)
    {
		global $cfg;
		
	//echo "!$cfg->emailadmin;	// от кого будем посылать почту<br>";
	//echo "!$cfg->smtphost;		// сервер SMTP<br>";
	//echo "!$cfg->smtpauth;		// требуется утенфикация?<br>";
	//echo "!$cfg->smtpport;		// SMTP порт<br>";
	//echo "!$cfg->smtpusername;	// SMTP имя пользователя для входа<br>";
	//echo "!$cfg->smtppass;		// SMTP пароль пользователя для входа<br>";
	//echo "!$cfg->emailreplyto;	// куда слать ответы<br>";
	//echo "!$cfg->sendemail;			<br>";		
		$mail = new PHPMailer(true);		
		$mail->IsSMTP();		
		  $mail->Host       = $cfg->smtphost;
		  $mail->SMTPDebug  = 0;
		  $mail->Encoding = '8bit';
		  $mail->CharSet = 'utf-8';		  
		  $mail->SMTPAuth   = $cfg->smtpauth;
		  $mail->Port       = $cfg->smtpport;
		  $mail->Username   = $cfg->smtpusername;
		  $mail->Password   = $cfg->smtppass;
		  $mail->AddReplyTo($cfg->emailadmin, $cfg->smtpusername);
		  $mail->AddAddress($to);                //кому письмо
		  $mail->SetFrom($cfg->emailadmin,  $cfg->smtpusername); //от кого (желательно указывать свой реальный e-mail на используемом SMTP сервере
		  $mail->AddReplyTo($cfg->emailadmin,  $cfg->smtpusername);
		$mail->Subject = htmlspecialchars($subject);
		//$mail->header="Content-type: text/html; Charset=UTF-8";
		$mail->MsgHTML($content);
		if($attach)  $mail->AddAttachment($attach);
		$mail->Send();
};
function SendMsg($fromemail,$toemail,$title,$txt)
{
  $header="Content-type: text/html; charset=\"utf-8\";";
  $header.= "From: $fromemail<$fromemail>;";
  return mail($toemail,$title,$txt,$header);  		
};

function ClearHtml($text) // чистим текст от мусора, козявок, иньекций и т.п.
{
       $text = trim( $text );
       $text = preg_replace( "/[^\x20-\xFF]/","",@strval( $text ) );
       $text = strip_tags( $text,"<span><strong><i><img><a><u><p><ul><ol><li><br><object>
               <embed><param><table><tr><td><th><h1><h2><h3><h4><h5><hr><div><code><pre>" );
       $text = mysql_real_escape_string( $text );
       $text = stripslashes($text); // удаляем лишние слешы
       $text = str_replace('"', "“", $text);
       $text = str_replace("'", "`", $text);
       return $text;
};

// проверяем аутенфикацию в AD 
function check_LDAP_user($username,$password,$ladpserver,$domain1,$domain2) // результат true если в AD такой пользователь есть
{
    if(!function_exists("ldap_connect")) die("Включите поддержку LDAP");
    global $db1,$_POST,$_SESSION;
    //echo "!$ladpserver,$domain1,$domain2!";
    $HDR_ERR="";
    if ((!$password) or (!$username)) {$HDR_ERR="false";} else
    {
        $filter= "(&(objectClass=top)(sAMAccountName=".$username."))";
        $basedn='dc=khortitsa,dc=$domain2';
        $dn="$domain1\\$username";
        $ldapconn = ldap_connect("$ladpserver");

        ldap_set_option($ldapconn, LDAP_OPT_PROTOCOL_VERSION, 3);
            if (!$ldapconn)
            {
             $HDR_ERR.=ldap_error($ldapconn);
            }else
                {
                    $bind = @ldap_bind($ldapconn, $dn,$password);
                    if ($bind=="1"){
                                $HDR_ERR='true';
                            } else {
                                $HDR_ERR="false";
                                    }
                }
    }
    return ($HDR_ERR);
} ;

function GetRandomId($n) // результат - случайная строка из цифр длинной n
{
  $id="";
  for ($i = 1; $i <= $n; $i++)
  {
    $id=$id.chr(rand(48,56));
  }
    return $id;
};
function DoubleLogin($login){ // проверяем есть ли дубли логинов в базе. Результат - количество логинов
 global $smarty,$cfg;
        $cnt=0;
	$result = mysql_query("SELECT count(id) as cnt FROM users WHERE login='$login'",$cfg->base_id);
	if ($result!='') {
         while ($myrow = mysql_fetch_array($result)){
		$cnt=$myrow[cnt];
	 };
	} else {die('Неверный запрос DoubleLogin: ' . mysql_error());}
	return $cnt;
};
function DoubleEmail($email){ // проверяем есть ли дубли логинов в базе. Результат - количество логинов
 global $smarty,$cfg;
        $cnt=0;
	$result = mysql_query("SELECT count(id) as cnt FROM users WHERE email='$email'",$cfg->base_id);
	if ($result!='') {
         while ($myrow = mysql_fetch_array($result)){
		$cnt=$myrow[cnt];
	 };
	} else {die('Неверный запрос DoubleEmail: ' . mysql_error());}
	return $cnt;
};

function GetArrayUsers(){ // Возврат - массив активных пользователей  
		global $smarty,$cfg;
		$cnt=0;
		$mOrg = array();
  		$result = mysql_query("SELECT * FROM users WHERE active=1 ORDER by login",$cfg->base_id);
  		if ($result!='') {
				  while ($myrow = mysql_fetch_array($result)){
				   $mOrg[$cnt][id]=$myrow[id];
				   $mOrg[$cnt][login]=$myrow[login];
				   //echo "$mOrg[$cnt][login];";
				   $mOrg[$cnt][active]=$myrow[active];
				   $cnt++;
				  };				
				return $mOrg;
                    } else {
                             die('Неверный запрос GetArrayUsers: ' . mysql_error());
                            }
	};
function GetArrayUsersProfile(){ // Возврат - массив активных пользователей  
		global $smarty,$cfg;
		$cnt=0;
		$mOrg = array();
  		$result = mysql_query("select users.id as id,users_profile.fio as fio,users_profile.res2 as res2,users_profile.res4 as res4,users_profile.faza,users_profile.post,users_profile.enddate from users JOIN users_profile ON users.id=users_profile.usersid where users.active=1 order by users_profile.res4 desc ",$cfg->base_id);
  		if ($result!='') {
				  while ($myrow = mysql_fetch_array($result)){
				   $mOrg[$cnt][id]=$myrow[id];
                                   //echo "!$myrow[fio]!";
				   $mOrg[$cnt][fio]=$myrow[fio];                                   
                                   $mOrg[$cnt][faza]=$myrow[faza];
                                   $mOrg[$cnt][post]=$myrow[post];
                                   if ($myrow[enddate]=='0001-01-01'){$myrow[enddate]="-";} else {$myrow[enddate]=MySQLDateTimeToDateTime($myrow[enddate]);};
                                   $mOrg[$cnt][enddate]=$myrow[enddate];
                                   $pieces = explode(" ", $myrow[res4]);
                                   $d1=strtotime($myrow[res4]);
                                   if ($myrow[res2]=='5')
                                        {$d2=strtotime(date( 'Y-m-d 08:00:00'));} else 
                                            {$d2=strtotime(date('Y-m-d 09:00:00'));};
                                   $mOrg[$cnt][go]=$pieces[1];
                                   if ($d1>$d2) {$mOrg[$cnt][ddd]='1';} else {$mOrg[$cnt][ddd]='0';};
                                   if ($mOrg[$cnt][go]=="00:00:00") {$mOrg[$cnt][ddd]='1';};
                                   //$mOrg[$cnt][ddd]="$d1>>$d2";
				   //echo "$mOrg[$cnt][login];";
				   //$mOrg[$cnt][active]=$myrow[active];
				   $cnt++;
				  };				
				return $mOrg;
                    } else {
                             die('Неверный запрос GetArrayUsersProfile: ' . mysql_error());
                            }
	};
function GetArrayOrg(){ // Возврат - массив активных организаций  
		global $smarty,$cfg;
		$cnt=0;
		$mOrg = array();
  		$result = mysql_query("SELECT * FROM org WHERE active=1",$cfg->base_id);
  		if ($result!='') {
				  while ($myrow = mysql_fetch_array($result)){
				   $mOrg[$cnt][id]=$myrow[id];
				   $mOrg[$cnt][name]=$myrow[name];
				   $mOrg[$cnt][active]=$myrow[active];
				   $cnt++;
				  };				
				return $mOrg;
                    } else {
                             die('Неверный запрос GetArrayOrg: ' . mysql_error());
                            }
	};
// Преобразует дату типа mm/dd/2012 в формат MySQL 2012-01-01 00:00:00
function DateToMySQLDateTime($dt)
{
   $str_exp = explode("/", $dt);
   $dtt=$str_exp[2]."-".$str_exp[0]."-".$str_exp[1]." 23:59:59";
   return $dtt;
};

// Преобразует дату типа dd.mm.2012 в формат MySQL 2012-01-01 00:00:00
function DateToMySQLDateTime2($dt)
{
   $str_exp = explode(".", $dt);
   $str_exp2 = explode(" ", $str_exp[2]);
   $dtt=$str_exp2[0]."-".$str_exp[1]."-".$str_exp[0]." $str_exp2[1]:00";   
   return $dtt;
};


// Преобразует дату MySQL в  читабельный формат
function MySQLDateTimeToDateTime($dt)
{

   $str1 = explode("-", $dt);
   $str2 = explode(" ", $str1[2]);
   $dtt=$str2[0].".".$str1[1].".".$str1[0]." ".$str2[1];
   return $dtt;
};

// на выходе - массив из папок в укзанной папке
function GetArrayFilesInDir($dir)
{
//echo "!!$dir!!";
	$includes_dir = opendir("$dir");
	$files = array();
	while ( ($inc_file = readdir($includes_dir)) != false )
//	echo "-$inc_file-";
		if (strstr($inc_file,".")==false)
		{
			$files[] = $inc_file;
//			echo "$inc_file!";
		}
	sort($files);
	return $files;
};
        
function GetListBpXml(){    
    $fl=GetArrayFilesInDir('../../bp');  
    $cn=count($fl);
    //echo "=$cn=$fl=";
   for ($i = 0; $i < count($fl); $i++)
  {       
    $fname=$fl[$i];
    $xml = simplexml_load_file("../../bp/$fname");    
    //var_dump($xml);
    //echo "!$xml->name!";
    //foreach($xml->bp as $bp){
    $name=$xml->name;
    $rs[$i][name]=$name;
    $rs[$i][file]=$fl[$i];
    //echo "!$name!";
    //};                      
  }  
  return $rs;
};

function GetUserIdByPostId($id){    
    global $cfg;		
  		$result = mysql_query("SELECT * FROM post_users WHERE id='$id'",$cfg->base_id);
  		if ($result!='') {
				  while ($myrow = mysql_fetch_array($result)){
				   $uid=$myrow[userid];
				  };				
				return $uid;
                    } else {
                             die('Неверный запрос GetUserIdByPostId: ' . mysql_error());
                            }    
    
}
        
function GetArrayPlans(){ // Возврат - массив планов завода
		global $smarty,$cfg;
        if (file_exists('plans.xml')) {        
                $xml = simplexml_load_file("plans.xml");    
                //var_dump($xml);
                               $i=0;
                               $vpkol_i=0;
                               $vpdal_i=0;
                               $plprkol_i=0;
                               $plprdal_i=0;
                               $protklplkol_i=0;
                               $protklpldal_i=0;
                               $otgrkol_i=0;
                               $otgrdal_i=0;
                               
                               
                               $res = array();
                               foreach($xml->plans as $plans){                                   
                                    $res[$i][tm]=$plans->tm;
                                    $res[$i][nom]=$plans->nom;
                                    $res[$i][vpkol]=str_replace(" ","",$plans->vpkol);
                                    $res[$i][vpdal]=str_replace(" ","",$plans->vpdal);
                                    if ($res[$i][nom]!=""){
                                       $vpkol_i=$vpkol_i+$res[$i][vpkol];
                                       $vpdal_i=$vpdal_i+$res[$i][vpdal];                                    
                                       $res[$i][vpkol_i]=$vpkol_i;
                                       $res[$i][vpdal_i]=$vpdal_i;
                                    };
                                    $res[$i][plprkol]=str_replace(" ","",$plans->plprkol);
                                    $res[$i][plprdal]=str_replace(" ","",$plans->plprdal);
                                    if ($res[$i][nom]!=""){
                                       $plprkol_i=$plprkol_i+$res[$i][plprkol];
                                       $plprdal_i=$plprdal_i+$res[$i][plprdal];
                                       $res[$i][plprkol_i]=$plprkol_i;
                                       $res[$i][plprdal_i]=$plprdal_i;                                                                        
                                    };
                                    $res[$i][protklplkol]=str_replace(" ","",$plans->protklplkol);
                                    $res[$i][protklpldal]=str_replace(" ","",$plans->protklpldal);
                                    if ($res[$i][nom]!=""){
                                    $protklplkol_i=$protklplkol_i+$res[$i][protklplkol];
                                    $protklpldal_i=$protklpldal_i+$res[$i][protklpldal];
                                    $res[$i][protklplkol_i]=$protklplkol_i;
                                    $res[$i][protklpldal_i]=$protklpldal_i;
                                    };
                                    //% выполнения расчитываем
                                    //$plprkol_i=100
                                    //$protklplkol_i=$res[$i][prpr_i]
                                    //$rz=$res[$i][plprdal];
                                    //echo "$rz<br>";
//				    $res[$i][prpr_i] = abs(round($vpkol_i*100/$plprkol_i,2));
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!stvJnK
				    if ($plprkol_i != 0) { $res[$i][prpr_i] = abs(round($vpkol_i*100/$plprkol_i,2)); } else { 
							   $res[$i][prpr_i] = 0; };
//!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!stvJnK
                                    
                                    $res[$i][prpr]=str_replace(" ","",$plans->prpr);
                                    if ($res[$i][nom]==""){$res[$i][prpr]=abs(round($res[$i][protklplkol]*100/$res[$i][plprkol],2));};
                                    
                                    $res[$i][plotgrkol]=str_replace(" ","",$plans->plotgrkol);
                                    $res[$i][plotgrdal]=str_replace(" ","",$plans->plotgrdal);                                   
                                    $res[$i][otgrkol]=str_replace(" ","",$plans->otgrkol);
                                    $res[$i][otgrdal]=str_replace(" ","",$plans->otgrdal);
                                    if ($res[$i][nom]!=""){
                                    $otgrkol_i=$otgrkol_i+$res[$i][otgrkol];
                                    $otgrdal_i=$otgrdal_i+$res[$i][otgrdal];
                                    $res[$i][otgrkol_i]=$otgrkol_i;
                                    $res[$i][otgrdal_i]=$otgrdal_i;
                                    };
                                    $res[$i][otkplotgkol]=str_replace(" ","",$plans->otkplotgkol);
                                    $res[$i][otkplotgdal]=str_replace(" ","",$plans->otkplotgdal);
                                    $res[$i][protgr]=str_replace(" ","",$plans->protgr);
                                    
                                    $i++;
                                   // echo "$plans->tm!!!!";
                               };
                               return $res;
                
        } else {echo "Нет файла plans.xml!";};
	};        
function GetArrayRss(){ // Возврат - массив активных организаций  
		global $smarty,$cfg;
		$cnt=0;
		$mRss = array();
  		$result = mysql_query("SELECT * FROM rss order by id  desc LIMIT 0 , 30",$cfg->base_id);
  		if ($result!='') {
				  while ($myrow = mysql_fetch_array($result)){
				   $mRss[$cnt][id]=$myrow[id];
				   $mRss[$cnt][title]=$myrow[title];
				   $mRss[$cnt][link]=$myrow[link];
                                   $mRss[$cnt][avtor]=$myrow[avtor];
                                   $mRss[$cnt][dt]=$myrow[dt];
                                   $mRss[$cnt][descc]=$myrow[descc];
                                   $mRss[$cnt][generator]=$myrow[generator];
				   $cnt++;
				  };				
				return $mRss;
                    } else {
                             die('Неверный запрос GetArrayRss: ' . mysql_error());
                            }
	};        

?>